1. Technical Field of the Invention
The invention relates generally to communication systems; and, more particularly, it relates to communication systems that employ an encoder to encode symbols of a data frame.
2. Description of Related Art
Data communication systems have been under continual development for many years. In an effort to improve the reliability of encoding of signals that are transmitted across a communication channel, one approach has been to employ multi-state encoders operable to support trellis encoding in an effort to provide a high level of redundancy of encoded information transmitted across a communication channel. The monitoring and tracking of the state of an encoder is often difficult when encoding a large sequence of information. For example, there is often a difficulty in aligning the various data frames when they are encoded using a multi-state encoder. For example, the state of the encoder will affect the encoding of information within the sequence. When the state of the encoder is unknown or in an undesirable state when beginning to encode a sequence of data, or when finishing encoding the sequence of data, the encoding of the sequence of data may be performed in a sub-optimal manner.
One prior art approach of controlling the state of a single encoder is to provide a number of zero valued symbols, the total number to zero valued symbols being equal to or greater than the total number of registers employed within the single encoder to force the single encoder to a zero valued state at the end of the sequence. This prior art approach can be very bandwidth consumptive. For example, when encoding a data frame having a number of symbols, by encoding several zero valued symbols to force the encoder to a zero valued state, the encoding sacrifices throughput to ensure that the encoder is at a predetermined state. For example, for every zero valued symbol that is encoded to force the encoder to this predetermined state, a symbol of information is sacrificed. In embodiments that include some sort of interleaving, the zero valued symbols are padded to an end of a data frame and they are not interleaved. For example, the other symbols of a data frame will be interleaved, and then the zero valued symbols will then simply be added to the end of the data frame before the data frame is provided to an encoder. However, this prior art approach suffers some significant degradation in performance, in that, the zero valued symbols are not interleaved.
The problem becomes even more complicated when an encoder device includes more than one constituent encoder. Moreover, the problem is even more extreme when one or more types of interleaving is performed during the encoding process. There is no adequate means existent in the art that can ensure the multiple constituent encoders return to a predetermined state after encoding a sequence of data.
For example, another prior art approach may be found within the context of turbo coders. A traditional turbo encoder includes two constituent encoders and a single interleaver that interleaves the input data that is provided to one of the constituent encoders. In this prior art approach, there is no solution to deal with the interleaving. Zero valued symbols will be padded to the data before it is provided to the interleaver, and subsequently to the one of the constituent encoders that is preceded by the interleaver. However, this constituent encoder (the one preceded by the interleaver) will not be forced to a predetermined state. Only the other constituent encoder (the one NOT preceded by the interleaver) will be forced to the predetermined state. That is to say, only one of the two constituent encoders will be forced to a predetermined state after encoding a data frame. This will inherently introduce some degradation of performance.
As such, there exists a need in the art to develop a more efficient means of forcing one or more encoders to a predetermined state at the end of encoding a sequence of data. In addition, there does not exist in the art a solution to accommodate with the effects of interleaving on the sequence of data. By ensuring that the one or more encoders are in fact at the predetermined state when beginning to encode the sequence of data, as well as when finishing encoding the sequence of data, and also be accommodating the effects of any interleaving, improved and more efficient encoding would be achieved.